home *** CD-ROM | disk | FTP | other *** search
Text File | 2000-02-02 | 9.4 KB | 372 lines | [TEXT/FB^e] |
- clear LOCAL MODE
- LOCAL FN InitMovies
- DIM MovieBlockPtr as pointer to MovieInfo
-
- LONG IF FN ENTERMOVIES = 0
- MovieBlockPtr = FN NEWPTRclear (sizeof(MovieInfo)*64)
- XELSE
- MovieBlockPtr = 0
- END IF
- END FN = MovieBlockPtr
-
- clear LOCAL MODE
- LOCAL FN PlayMovie (MovieBlockPtr as pointer to MovieInfo)
- DIM OSErr%
-
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
- OSErr% = FN PREROLLMOVIE(MovieBlockPtr.MovieH,0,&1000)
- CALL STARTMOVIE(MovieBlockPtr.MovieH)
-
- MovieCT& = MovieBlockPtr.MovieController&
- x=FN MCMovieChanged(MovieCT&,MovieH)
-
- END FN
-
- clear LOCAL MODE
- LOCAL FN RewindMovie (MovieBlockPtr as pointer to MovieInfo)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
- CALL GOTOBEGINNINGOFMOVIE(MovieBlockPtr.MovieH)
-
- MovieCT& = MovieBlockPtr.MovieController&
- x=FN MCMovieChanged(MovieCT&,MovieH)
-
- END FN
-
- clear LOCAL MODE
- LOCAL FN StopMovie (MovieBlockPtr as pointer to MovieInfo)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
- CALL STOPMOVIE(MovieBlockPtr.MovieH)
-
- MovieCT& = MovieBlockPtr.MovieController&
- x=FN MCMovieChanged(MovieCT&,MovieH)
-
- END FN
-
- local fn GetChangeCreator$
- end fn = gChangeCreator$
-
- local fn GetAutoPlayVar$
- end fn = gAutoPlay$
-
- local fn GetLoopVar$
- end fn = gLoop$
-
- CLEAR LOCAL MODE
- LOCAL FN NewMovieWindow(MovieBlockPtr as pointer to MovieInfo,FileName$,VRefNum%,MovieTop%,MovieLeft%,Flags%)
- DIM ParamBlock.128,CGrafPtr&,CurDev&,MovieCT&,Movie&,OSErr%,WndID%,MovieResRefNum%,ResID%,DateRefChanged%,ResName$
- DIM BoxRect as rect
- DIM MCRect as rect
- DIM @ FSSpec;0,FSVRefNum%,FSParID&,63 FSName$
-
- WndID% = 0
- FSVRefNum% = VRefNum%
- FSName$ = FileName$
-
- LONG IF MovieBlockPtr
- myFirstResFile% = FN CURRESFILE
- LONG IF FSName$ = ""
- FSName$ =FILES$(1,"",,FSVRefNum%)
- END IF
-
- LONG IF FSName$ <> ""
- ParamBlock.ioNamePtr& = @FSName$
- ParamBlock.ioVRefNum% = FSVRefNum%
- ParamBlock.ioFDirIndex% = 0
-
- OSErr% = FN GETCATINFO(ParamBlock)
- FSParID& = [@ParamBlock + _ioFLParID]
-
- LONG IF FN OPENMOVIEFILE(FSSpec,MovieResRefNum%,_FSRdPerm) = _NoErr
- LONG IF FN NEWMOVIEFROMFILE(Movie&,MovieResRefNum%,ResID%,ResName$,1,DateRefChanged%) = _noErr
-
- DO
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo)
- INC(WndID%)
- UNTIL WINDOW(-WndID%) = 0
-
- CALL GETMOVIEBOX(Movie&,BoxRect)
- CALL OFFSETRECT(BoxRect,-BoxRect.Left%,-BoxRect.Top%)
-
- LONG IF Flags% AND 8
- BoxRect.Bottom% = BoxRect.Bottom% + BoxRect.Bottom%
- BoxRect.Right% = BoxRect.Right% + BoxRect.Right%
- END IF
-
- long if BoxRect.Bottom% =< 16 or BoxRect.Right% =< 16
- BoxRect.Bottom% = 0
- BoxRect.Right% = 150
- end if
-
- CALL SETMOVIEBOX(Movie&,BoxRect.Top%)
-
- WINDOW WndID%,FSName$,(MovieLeft%,MovieTop%)-(BoxRect.Right%+MovieLeft%,MovieTop%+BoxRect.Bottom%+16),_docNoGrow
- CALL GETGWORLD(CGrafPtr&,CurDev&)
- CALL SETMOVIEGWORLD(Movie&,CGrafPtr&,0)
-
- MCRect;8 = CGrafPtr&+_PortRect
- MovieCT& = FN NEWMOVIECONTROLLER(Movie&,MCRect,&15)
-
- MovieBlockPtr.MovieH = Movie&
- MovieBlockPtr.MovieController& = MovieCT&
- MovieBlockPtr.MoviePort = CGrafPtr&
- MovieBlockPtr.MovieResRefNum% = MovieResRefNum%
- MovieBlockPtr.MovieFlags% = Flags%
- MovieBlockPtr.MovieLoop% = _false
- MovieBlockPtr.MovieAutoplay% = _false
- MovieBlockPtr.MovieLocation% = FSVRefNum%
- MovieBlockPtr.MovieNames$ = FSName$
-
- x$=FN GetString$ (FSName$,FSVRefNum%,5000)
- long if x$="Y" or x$="N"
- long if x$ = "Y"
- MovieBlockPtr.MovieAutoplay% = _true
- xelse
- MovieBlockPtr.MovieAutoplay% = _false
- end if
- xelse
- long if FN GetAutoPlayVar$ = "Y"
- MovieBlockPtr.MovieAutoplay% = _true
- xelse
- MovieBlockPtr.MovieAutoplay% = _false
- end if
- end if
-
- x$=FN GetString$ (FSName$,FSVRefNum%,5001)
- long if x$="Y" or x$="N"
- long if x$ = "Y"
- MovieBlockPtr.MovieLoop% = _true
- xelse
- MovieBlockPtr.MovieLoop% = _false
- end if
- xelse
- long if FN GetLoopVar$ = "Y"
- MovieBlockPtr.MovieLoop% = _true
- xelse
- MovieBlockPtr.MovieLoop% = _false
- end if
- end if
-
- long if MovieBlockPtr.MovieAutoplay% = _true
- CALL startmovie(Movie&)
- CALL GOTOBEGINNINGOFMOVIE(Movie&)
- x%=FN MCMovieChanged(MovieCT&,Movie&)
- end if
-
- END IF
- END IF
- END IF
- END IF
- CALL USERESFILE (myFirstResFile%)
- END FN = WndID%
-
- LOCAL FN ControllerEvent(MovieCT&,EventPtr&)
- LONG IF fn MCISPLAYEREVENT(MovieCT&,#EventPtr&) = 1
- % EventPtr&,0
- END IF
- END FN
-
- LOCAL MODE
- LOCAL FN TryMovieEvent(MovieBlockPtr as pointer to MovieInfo,EventPtr&)
- LONG IF MovieBlockPtr
- DIM OldPort&,ThePort&,MovieCT&,Movie&,OSErr%,WndID%
-
- CALL GETPORT(OldPort&)
-
- FOR WndID% = 1 TO 63
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo)
- Movie& = MovieBlockPtr.MovieH
- LONG IF Movie&
- ThePort& = MovieBlockPtr.MoviePort
- MovieCT& = MovieBlockPtr.MovieController&
-
- CALL SETPORT(ThePort&)
- SELECT {EventPtr&}
- CASE _UpdatEvt
- LONG IF ThePort& = EventPtr&.EvtMessage&
-
- autoclip = _false
-
- FN ControllerEvent(MovieCT&,EventPtr&)
-
- CALL BEGINUPDATE(ThePort&)
- OSErr% = FN UPDATEMOVIE(Movie&)
- CALL ENDUPDATE(ThePort&)
- EventPtr&.EvtNum% = 0
- END IF
- CASE _NullEvt
- LONG IF FN ISMOVIEDONE(Movie&)
- LONG IF MovieBlockPtr.MovieLoop% = _true
- CALL GOTOBEGINNINGOFMOVIE(Movie&)
- CALL startmovie(Movie&)
- x=FN MCMovieChanged(MovieCT&,Movie&)
- xelse
- CALL GOTOBEGINNINGOFMOVIE(Movie&)
- CALL stopmovie(Movie&)
- x=FN MCMovieChanged(MovieCT&,Movie&)
- END IF
- END IF
- CALL MOVIESTASK(Movie&,33)
- FN ControllerEvent(MovieCT&,EventPtr&)
- CASE ELSE
- FN ControllerEvent(MovieCT&,EventPtr&)
- END SELECT
- END IF
- NEXT WndID%
- CALL SETPORT(OldPort&)
- END IF
- END FN
-
- LOCAL MODE
- LOCAL FN CloseMovie(MovieBlockPtr as pointer to MovieInfo,WndID%)
- DIM MovieCT&,Movie&,OSErr%
-
- MovieBlockPtr = MovieBlockPtr + WndID% * SIZEOF(MovieInfo)
- Movie& = MovieBlockPtr.MovieH
- LONG IF Movie&
- CALL STOPMOVIE(Movie&)
- MovieCT& = MovieBlockPtr.MovieController&
- LONG IF MovieCT&
- CALL DISPOSEMOVIECONTROLLER(MovieCT&)
- END IF
- MovieBlockPtr.MovieH = 0
- MovieBlockPtr.MovieController& = 0
-
- MovieBlockPtr.MovieLoop% = 0
- MovieBlockPtr.MovieAutoplay% = 0
- MovieBlockPtr.MovieNames$ = ""
-
-
- OSErr% = FN CLOSEMOVIEFILE(MovieBlockPtr.MovieResRefNum%)
- WINDOW CLOSE WndID%
- END IF
- END FN
-
- LOCAL MODE
- LOCAL FN QuitMovies (MovieBlockPtr as pointer to MovieInfo)
- DIM WndID%
-
- LONG IF MovieBlockPtr
- FOR WndID% = 1 TO 63
- FN CloseMovie(MovieBlockPtr,WndID%)
- NEXT WndID%
- CALL EXITMOVIES
- call DISPOSePtR(MovieBlockPtr)
- MovieBlockPtr = 0
- END IF
- END FN = MovieBlockPtr
-
- REM FNs by MattBeedle@aol.com
- REM -------------------------
-
- clear local mode
- local fn StrCreator (MovieBlockPtr as pointer to MovieInfo,myWindowId)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
- FSVRefNum% = MovieBlockPtr.MovieLocation%
- FSName$ = MovieBlockPtr.MovieNames$
- x$ = FN GetFileCreator$(FSName$,FSVRefNum%)
- long if x$ <> "BPLA"
- fn PutString (FSName$,FSVRefNum%,5002,x$)
- end if
- long if fn GetChangeCreator$ = "Y"
- type& = _"MooV"
- creator& = _"BPLA"
- FN SetTypeAndCreator(FSName$,FSVRefNum%,type&,creator&)
- end if
- end fn
-
- clear local mode
- local fn StrType (MovieBlockPtr as pointer to MovieInfo,myWindowId)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
- FSVRefNum% = MovieBlockPtr.MovieLocation%
- FSName$ = MovieBlockPtr.MovieNames$
- y$ = FN GetFileType$(FSName$,FSVRefNum%)
- fn PutString (FSName$,FSVRefNum%,5003,y$)
- end fn
-
- clear local mode
- local fn StrAutoPlay (MovieBlockPtr as pointer to MovieInfo,myWindowId)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
- FSVRefNum% = MovieBlockPtr.MovieLocation%
- FSName$ = MovieBlockPtr.MovieNames$
- long if MovieBlockPtr.MovieAutoplay% = _false
- fn PutString (FSName$,FSVRefNum%,5000,"N")
- xelse
- fn PutString (FSName$,FSVRefNum%,5000,"Y")
- end if
- end fn
-
- clear local mode
- local fn StrLoop (MovieBlockPtr as pointer to MovieInfo,myWindowId)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
- FSVRefNum% = MovieBlockPtr.MovieLocation%
- FSName$ = MovieBlockPtr.MovieNames$
- long if MovieBlockPtr.MovieLoop% = _false
- fn PutString (FSName$,FSVRefNum%,5001,"N")
- xelse
- fn PutString (FSName$,FSVRefNum%,5001,"Y")
- end if
-
- end fn
-
- clear local mode
- local fn GetMovieVol% (MovieBlockPtr as pointer to MovieInfo,myWindowId)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
- FSVRefNum% = MovieBlockPtr.MovieLocation%
- end fn=FSVRefNum%
-
- clear local mode
- local fn GetMovieName$ (MovieBlockPtr as pointer to MovieInfo,myWindowId)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
- long if len(MovieBlockPtr.MovieNames$)
- myNames$ = MovieBlockPtr.MovieNames$
- xelse
- myNames$ = ""
- end if
- end fn=myNames$
-
- clear local mode
- local fn GetMovieLoop (MovieBlockPtr as pointer to MovieInfo)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
- myMovieLoop% = MovieBlockPtr.MovieLoop%
- end fn = myMovieLoop%
-
- clear local mode
- local fn GetMovieAutoPlay (MovieBlockPtr as pointer to MovieInfo)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
- myMovieAuto% = MovieBlockPtr.MovieAutoplay%
- end fn = myMovieAuto%
-
- clear local mode
- local fn ToggleMovieLoop (MovieBlockPtr as pointer to MovieInfo)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
- long if MovieBlockPtr.MovieLoop% = _true
- MovieBlockPtr.MovieLoop% = _false
- xelse
- MovieBlockPtr.MovieLoop% = _true
- end if
- end fn
-
- clear local mode
- local fn ToggleMovieAutoPlay (MovieBlockPtr as pointer to MovieInfo)
- MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
- long if MovieBlockPtr.MovieAutoplay% = _true
- MovieBlockPtr.MovieAutoplay% = _false
- xelse
- MovieBlockPtr.MovieAutoplay% = _true
- end if
- end fn
-
- local fn SaveMovieInfo
-
- myNames$ = fn GetMovieName$ (gMovieBlock&,window(1))
- myVol% = fn GetMovieVol% (gMovieBlock&,window(1))
- long if fn CheckIfResFork (myNames$,myVol%)=0
- fn StrCreator (gMovieBlock&,WINDOW(1))
- fn StrType (gMovieBlock&,WINDOW(1))
- fn StrAutoPlay (gMovieBlock&,WINDOW(1))
- fn StrLoop (gMovieBlock&,WINDOW(1))
- xelse
- fn DisplayDLOG (132)
- end if
- end fn
-